# 导入数据库扩展
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from info import create_app,db, models
from config import DevelopementConfig,ProductionConfig
from info.models import User

# manager管理控制什么模式运行代码

app = create_app(DevelopementConfig)
# 创建manager  拥有命令行运行程序
manager = Manager(app)
# 创建Migrate对象
Migrate(app, db)
# 给命令行绑定迁移指令　　命令行增加db 以及迁移命令　
manager.add_command('db', MigrateCommand)


# 自定义命令行 创建管理员账号密码
@manager.option('-n','-name',dest='name')
@manager.option('-p','-password',dest='password')
def createsuperuser(name,password):

    # 判断参数
    if not all([name,password]):
        print('参数不足')
        return
    user = User()
    user.nick_name = name
    user.mobile = name
    user.password = password
    user.is_admin = True
    # 保存到数据库
    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e:
        print('不成功')
        db.session.rollback()
    return print('添加成功')


if __name__ == '__main__':
    print(app.url_map)
    manager.run()
